Aggregation এবং Query কৌশল

Database Tutorials - ডকুমেন্ট ডিবি (DocumentDB) ডেটাবেজ অপারেশনস |
237
237

DocumentDB (এবং MongoDB) এর মধ্যে Aggregation এবং Query কৌশল দুটি ডেটা অনুসন্ধান এবং বিশ্লেষণ করার অত্যন্ত শক্তিশালী মাধ্যম। এই কৌশলগুলি আপনাকে ডেটাবেসে সঞ্চিত ডেটা থেকে জটিল তথ্য বের করতে এবং আরও দক্ষভাবে পারফরম্যান্স উন্নত করতে সহায়তা করে।


Query কৌশল

Query হল ডেটাবেসে ডেটা খোঁজার এবং ফিল্টার করার একটি উপায়। DocumentDB বা MongoDB তে আপনি JSON ডকুমেন্টের ভিত্তিতে অনুসন্ধান করতে পারেন।

1. সিম্পল কুয়েরি

সাধারণ কুয়েরি ব্যবহার করে আপনি নির্দিষ্ট ডকুমেন্ট বা ডেটার অংশ খুঁজে পেতে পারেন।

উদাহরণ:

db.users.find({ "age": { "$gte": 18 } })

এটি users কালেকশন থেকে সমস্ত ব্যবহারকারীদের খুঁজে বের করবে যাদের বয়স ১৮ বা তার বেশি।

2. Projection

Projection কুয়েরি ব্যবহার করে আপনি নির্দিষ্ট ফিল্ডগুলো ফেরত পেতে পারেন, যাতে কেবলমাত্র প্রয়োজনীয় তথ্য রিটার্ন হয়।

উদাহরণ:

db.users.find({ "age": { "$gte": 18 } }, { "name": 1, "age": 1 })

এটি name এবং age কেবল ফিরিয়ে দেবে, অন্য কোন তথ্য ছাড়া।

3. Filtering

ফিল্টারিং কুয়েরি ডেটাকে নির্দিষ্ট শর্তের উপর ভিত্তি করে ফিল্টার করে।

উদাহরণ:

db.orders.find({ "status": "shipped", "amount": { "$gt": 100 } })

এটি কেবল সেই অর্ডারগুলো ফিরিয়ে দিবে যেগুলির স্ট্যাটাস "shipped" এবং যাদের পরিমাণ ১০০ এর বেশি।

4. Sorting

Sorting কুয়েরি ব্যবহার করে আপনি রিটার্ন হওয়া ডেটা সাজাতে পারেন।

উদাহরণ:

db.users.find().sort({ "age": -1 })

এটি ব্যবহারকারীদের বয়সের ভিত্তিতে ডিসেনডিং (বাড়ানোর) ক্রমে সাজাবে। (যদি 1 দেওয়া হয়, তাহলে Ascending হয়)

5. Limiting and Skipping

আপনি কতগুলো ডেটা ফিরিয়ে দেবেন এবং কোথা থেকে শুরু করবেন, তা কন্ট্রোল করতে limit এবং skip কুয়েরি ব্যবহার করতে পারেন।

উদাহরণ:

db.orders.find().skip(10).limit(5)

এটি প্রথম ১০টি ডকুমেন্ট স্কিপ করবে এবং পরবর্তী ৫টি রিটার্ন করবে।


Aggregation কৌশল

Aggregation হল একটি শক্তিশালী কৌশল যা এক বা একাধিক ডকুমেন্টের উপর বিভিন্ন অপারেশন পরিচালনা করে, যেমন গণনা, গোষ্ঠীভুক্তকরণ, পরিসংখ্যান সংগ্রহ, ইত্যাদি। DocumentDB বা MongoDB-তে আপনি Aggregation Pipeline ব্যবহার করতে পারেন যা বিভিন্ন স্টেপের মাধ্যমে ডেটা প্রক্রিয়া করে।

1. Aggregation Pipeline

Aggregation Pipeline হল ডেটা প্রক্রিয়াকরণের একটি ধাপে ধাপে পদ্ধতি যেখানে একাধিক স্টেপ থাকে। প্রতিটি স্টেপে ডেটা একটি নির্দিষ্ট প্রক্রিয়া অনুসরণ করে।

উদাহরণ:

db.sales.aggregate([
  { "$match": { "category": "electronics" } },
  { "$group": { "_id": "$brand", "total_sales": { "$sum": "$amount" } } },
  { "$sort": { "total_sales": -1 } }
])

এটি প্রথমে electronics ক্যাটাগরির বিক্রয়গুলো নির্বাচন করবে, তারপর brand অনুযায়ী বিক্রয় মোট যোগ করবে এবং পরিশেষে সর্বোচ্চ বিক্রয় ব্র্যান্ডগুলো সাজাবে।

2. $match

$match স্টেপ ডেটাকে একটি নির্দিষ্ট শর্তের ভিত্তিতে ফিল্টার করে। এটি find() কুয়েরির মতো কাজ করে।

উদাহরণ:

db.orders.aggregate([
  { "$match": { "status": "completed" } }
])

এটি completed স্ট্যাটাসের অর্ডারগুলিকে ফিল্টার করবে।

3. $group

$group স্টেপটি ডেটাকে নির্দিষ্ট একটি ফিল্ডের উপর ভিত্তি করে গ্রুপ করতে ব্যবহৃত হয় এবং কিছু সংক্ষিপ্ত পরিসংখ্যান তৈরি করতে সহায়ক।

উদাহরণ:

db.sales.aggregate([
  { "$group": { "_id": "$category", "total_sales": { "$sum": "$amount" } } }
])

এটি প্রতিটি category অনুযায়ী মোট বিক্রয় পরিমাণ যোগ করবে।

4. $sort

$sort স্টেপ ব্যবহার করে ডেটাকে নির্দিষ্ট একটি ফিল্ডের ভিত্তিতে সাজানো হয়।

উদাহরণ:

db.orders.aggregate([
  { "$sort": { "order_date": -1 } }
])

এটি অর্ডারগুলিকে সর্বশেষ অর্ডারের ভিত্তিতে সাজাবে।

5. $project

$project স্টেপটি ডেটার আউটপুটের ফিল্ড কন্ট্রোল করতে ব্যবহৃত হয়, অর্থাৎ আপনি কোন ফিল্ডগুলো রিটার্ন করবেন তা নির্ধারণ করতে পারবেন।

উদাহরণ:

db.users.aggregate([
  { "$project": { "name": 1, "age": 1 } }
])

এটি কেবল name এবং age ফিল্ড রিটার্ন করবে।

6. $limit

$limit স্টেপটি নির্দিষ্ট সংখ্যক ডকুমেন্ট ফেরত আনে।

উদাহরণ:

db.users.aggregate([
  { "$limit": 5 }
])

এটি কেবল প্রথম ৫টি ডকুমেন্ট রিটার্ন করবে।

7. $unwind

$unwind স্টেপটি একটি অ্যারে ফিল্ডের প্রতিটি উপাদান আলাদাভাবে এক্সট্র্যাক্ট করে।

উদাহরণ:

db.orders.aggregate([
  { "$unwind": "$items" }
])

এটি items অ্যারে ফিল্ডের প্রতিটি আইটেমকে আলাদা আলাদা ডকুমেন্ট হিসেবে দেখাবে।


Aggregation এবং Query কৌশলগুলো কবে ব্যবহার করবেন?

  • Query কৌশল ব্যবহার করবেন যদি আপনাকে সাধারণভাবে একটি ডকুমেন্ট বা ডেটার অংশ অনুসন্ধান করতে হয়, যেমন একটি নির্দিষ্ট শর্ত পূর্ণকারী ডকুমেন্ট খোঁজা।
  • Aggregation কৌশল ব্যবহার করবেন যখন আপনাকে ডেটাকে গ্রুপ, ফিল্টার, বা জটিল গণনা (যেমন যোগফল, গড়, সর্বোচ্চ, ন্যূনতম) করতে হবে, অথবা যখন ডেটা সেটটি বড় এবং আপনি ডেটা থেকে আরো গভীর বিশ্লেষণ করতে চান।

সারাংশ

DocumentDB (এবং MongoDB) এর Query এবং Aggregation কৌশলগুলি ডেটাবেস থেকে তথ্য অনুসন্ধান ও বিশ্লেষণ করার জন্য অত্যন্ত গুরুত্বপূর্ণ। যেখানে Query কৌশলগুলি সরল অনুসন্ধান এবং ফিল্টারিং এর জন্য ব্যবহৃত হয়, Aggregation কৌশলগুলি ডেটার উপর জটিল গাণিতিক এবং পরিসংখ্যানিক অপারেশন পরিচালনা করতে ব্যবহৃত হয়। এই কৌশলগুলির সাহায্যে আপনি ডেটা পরিচালনা, বিশ্লেষণ এবং অপটিমাইজ করতে পারবেন।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion